#pragma once
template<class T>
class Nodo{
private:
	Nodo *Next;
	T *Info;
public:
	Nodo(Nodo*,T*);
	~Nodo();
	virtual Nodo* getNext();
	virtual void setNext(Nodo*);
	virtual void setInfo(T*);
	virtual T* getInfo();
};

template<class T>
Nodo<T>::Nodo(Nodo<T>* siguiente, T *info){
	this->Next=siguiente;
	this->Info=info;
}
template<class T>
Nodo<T>::~Nodo(){
	delete Info;
}
template<class T>
Nodo<T>* Nodo<T>::getNext(){
	return this->Next;
}
template<class T>
T* Nodo<T>::getInfo(){
	return this->Info;
}

template<class T>
void Nodo<T>::setNext(Nodo<T>* n1){
	this->Next=n1;
}

template<class T>
void Nodo<T>::setInfo(T* info1){
	this->Info=info1;
}